package com.dingreading.cloud.ssxcx.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 小程序学生学习进度表 实体类。
 *
 * @author EDY
 * @since 2025-08-18
 */
@Data
@Table("xcx_student_learning_progress")
public class XcxStudentLearningProgress implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * ID，主键自增
     */
    @Id(keyType = KeyType.Auto)
    private Long id;

    /**
     * 本条进度记录的唯一UID
     */
    private String uid;

    /**
     * 伙伴uid
     */
    private String agencyUid;

    /**
     * 门店uid
     */
    private String storeUid;

    /**
     * 学生UID
     */
    private String studentUid;

    /**
     * 关联的题目UID
     */
    private String questionUid;

    /**
     * 课后作业UID
     */
    private String homeworkUid;

    /**
     * 学生选择的选项UID (来自xcx_lesson_quiz_options表)
     */
    private String studentOptionUid;

    /**
     * 关联的课节UID
     */
    private String subjectLessonUid;

    /**
     * 关联的资料文件UID (对应 xcx_materials_files.uid, 如果有具体文件的话)
     */
    private String materialFileUid;

    /**
     * 资料阶段: 1-课前, 2-课中, 3-课后 4-名师精讲
     */
    private Integer materialStage;

    /**
     * 学习时长（秒），对视频等有时长的资料有意义
     */
    private Integer durationSeconds;

    /**
     * 版本UID
     */
    private String versionUid;

    /**
     * 启用状态：0-禁用，1-启用
     */
    private Integer enabled;

    /**
     * 创建时间
     */
    @Column(onInsertValue = "now()")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date addTime;

    /**
     * 最后修改时间
     */
    @Column(onInsertValue = "now()", onUpdateValue = "now()")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date editTime;

    /**
     * 添加人用户ID
     */
    private String addStaffUid;

    /**
     * 添加人姓名
     */
    private String addStaffName;

    /**
     * 最后修改人用户ID
     */
    private String lastStaffUid;

    /**
     * 最后修改人姓名
     */
    private String lastStaffName;

    /**
     * 科目UID
     */
    private String projectUid;
    /**
     * 阶段UID
     */
    private String stageUid;

    /**
     * 学生姓名
     */
    private String studentName;

    /**
     * 学生手机号
     */
    private String phone;

}
